package com.spddr.pmos.cxf;

import java.util.List;

import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;

import com.spddr.pmos.jpa.Permission;
import com.spddr.pmos.jpa.Role;

import cn.seqdata.cxf.repos.JaxrsAllObjRepository;

@Path("/role")
public interface JaxrsRole extends JaxrsAllObjRepository<Role> {
	@PUT
	@Path("/")
	default <S extends Role> S save(S entity) {
		return getRepository().save(entity);
	}

	@GET
	@Path("/{id}/permissions")
	List<Permission> findPermissions(@PathParam("id") long id);

	@PUT
	@Path("/{id}/permissions")
	List<Permission> savePermissions(@PathParam("id") long id, List<Permission> permissions);

	@DELETE
	@Path("/{id}/permissions")
	void deletePermissions(@PathParam("id") long id);
}
